autofs 是自動掛載用的工具,它會偵測當使用者進入要掛載的目錄時,才會把 nfs 給掛載起來,一段時間不用的時候就自動卸載掉,可以讓我們在需要使用時才連線,用完也不用手動 umount,可以相當程度上的避免突然的連線中斷導致無限 timeout
安裝 autofs
sudo apt install autofs
autofs 有兩個設定檔要編輯,首先在 /etc/auto.master.d 裡建立一個新的 master conf,副檔名一定要用 .autofs
sudo vim /etc/auto.master.d/nfs.autofs
# Mount Point # Map File
/home/wade/nfs_mount /etc/auto.nfs
- Mount Point:nfs server 在本機的掛載目錄,這個目錄不需要存在,當 autofs 啟動時會自動建立並且持續的監控該資料夾
- Map File:autofs 會根據 map file 的內容來掛載遠端目錄到本機的 mount point,該設定檔名稱可以自訂
將 master conf 放在 /etc/auto.master.d 裡是比較建議的做法,不過在 Ubuntu 18.04 以前,並沒有這個資料夾,所以也可以直接把 master conf 的內容寫到 /etc/auto.master 裡
接著建立 Map File
sudo vim /etc/auto.nfs
share -rw,sync 192.168.199.169:/home/wade
- share:子目錄名稱,指的是剛才 master conf 裡 mount point 底下的子目錄,名稱可以自訂,當我們進入 /home/wade/nfs_mount/share 的同時,autofs 就會幫我們把遠端目錄掛載到該處。
因此實際上 192.168.199.169:/home/wade 會掛載到 /home/wade/nfs_mount/share,而不是 /home/wade/nfs_mount - -rw,sync:nfs 的掛載參數
- 192.168.199.169:/home/wade:NFS server 裡 /etc/exports 所設定的分享目錄,
master conf 與 map file 都設定好之後,啟動 autofs 並設定自動開啟
sudo systemctl start autofs && sudo systemctl enable autofs
測試 autofs 掛載
cd /home/wade/nfs_mount/share && ls -l
總計 16
drwxrwxrwx 3 wade wade 109 8月 14 11:54 .
drwxr-xr-x 3 root root 0 8月 14 11:53 ..
-rw------- 1 wade wade 2059 8月 13 16:41 .bash_history
-rw-r--r-- 1 wade wade 18 11月 9 2019 .bash_logout
-rw-r--r-- 1 wade wade 141 11月 9 2019 .bash_profile
-rw-r--r-- 1 wade wade 312 11月 9 2019 .bashrc
drwxrwxr-x 2 wade wade 6 8月 14 11:35 HI
-rw-rw-r-- 1 wade wade 0 8月 14 11:36 NFS_test
可以看到這些都是 NFS server 上的 home 目錄的內容
比較方便的做法是在 File Manager 裡把掛載目錄加到書籤,這樣只要點一下就掛載起來了!